/**
 * 版本管理工具
 */

// 从 package.json 获取版本号
export const getAppVersion = () => {
  try {
    // 在构建时，版本信息会被注入到环境变量中
    return process.env.REACT_APP_VERSION || '0.0.0';
  } catch (error) {
    console.warn('无法获取应用版本:', error);
    return '0.0.0';
  }
};

// 获取项目版本（用于项目导出）
export const getProjectVersion = () => {
  return getAppVersion();
};

// 版本比较工具
export const compareVersions = (version1, version2) => {
  const v1parts = version1.split('.').map(Number);
  const v2parts = version2.split('.').map(Number);
  
  for (let i = 0; i < Math.max(v1parts.length, v2parts.length); i++) {
    const v1part = v1parts[i] || 0;
    const v2part = v2parts[i] || 0;
    
    if (v1part > v2part) return 1;
    if (v1part < v2part) return -1;
  }
  
  return 0;
};

// 检查版本兼容性
export const isVersionCompatible = (projectVersion, minVersion = '0.0.1') => {
  return compareVersions(projectVersion, minVersion) >= 0;
};

export default {
  getAppVersion,
  getProjectVersion,
  compareVersions,
  isVersionCompatible
};
